﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebApplication.DTO;

namespace WebApplication.DAO
{
    public class textboxDAO
    {
        public static String timTuKhoa(String key, List<tukhoaDTO> listTuKhoa,int[] arrKQ,int indexArrKQ,ref int flagKQ)
        {
            key = " " + key + " ";
            String temp = key.ToUpper();

            String strTimDuoc = "";
            int maKeyTimDuoc = -1;

            for (int i = 0; i < listTuKhoa.Count; i++)
            {
                tukhoaDTO tk = listTuKhoa[i];
                String tukhoa = tk.Tukhoa.Trim().ToUpper();
                if (temp.Contains(tukhoa)&&tukhoa.Equals("")==false)
                {
                    int index = temp.IndexOf(tukhoa, 0, temp.Length);
                    if (index > 0)
                    {
                        
                        String start = temp.Substring(index - 1, 1);
                        String end="";
                        if (tk.Tukhoa.Count()  <= temp.Count()-2)
                        {
                            end = temp.Substring(index + tukhoa.Length, 1);
                        }
                        else 
                        {   
                            continue;
                        }
                        if (start.Equals(" ") && end.Equals(" "))
                        {
                           
                            if (tk.Tukhoa.Length > strTimDuoc.Length)
                            {
                                strTimDuoc = tk.Tukhoa.ToUpper();
                                maKeyTimDuoc = tk.MaKey;
                            }
                            
                        }
                    }
                    
                }
            }
            if(maKeyTimDuoc > 0)
            {
                temp = temp.Replace(strTimDuoc, "");
                arrKQ[indexArrKQ] = maKeyTimDuoc;
                flagKQ = 1;
            }
            return temp;
        }
        public static String chuanHoaChuoi(String Key)
        {
            String strKey;
            strKey = Key.Trim();
            strKey.ToUpper();
            return strKey;
        }

        public static String xoaKyTuDacBiet(String Key)
        {
            String strKiTu = "! @ # $ % & ( ) _ * ^ + - < > . / ? : \" | \\ { } [ ]";
            String[] arrSubKiTu = strKiTu.Split(' ');
            String strKey = Key;
            for (int i = 0; i < arrSubKiTu.Count(); i++)
            {
                if (strKey.Contains(arrSubKiTu[i]) == true)
                {
                    strKey = strKey.Replace(arrSubKiTu[i], "");
                }
            }
            return strKey;
        }

        public static String xoaDau(String Key)
        {

            String kituCoDau = "À Á Â Ã È É Ê Ì Í Ò Ó Ô Õ Ù Ú Ý à á â ã è é ê í ò ó ô õ ù ú ý Ă ă Đ đ ĩ Ũ ũ Ơ ơ Ư ư Ạ ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ ặ Ẹ ẹ Ẻ ẻ Ẽ ẽ Ế ế Ề ề Ể ể Ễ ễ Ệ ệ Ỉ ỉ Ị ị Ọ ọ Ỏ ỏ Ố ố Ồ ồ Ổ ổ Ỗ ỗ Ộ ộ Ớ ớ Ờ ờ Ở ở Ỡ ỡ Ợ ợ Ụ ụ Ủ ủ Ứ ứ Ừ ừ Ử ử Ữ ữ Ự ự";
            String[] arrSubKiTuCoDau = kituCoDau.Split(' ');
            String strKey = Key;
            String kq = "";
            String kituKhongDau = "A A A A E E E I I O O O O U U Y a a a a e e e i o o o o u u y A a D d i U u O o U u A a A a A a A a A a A a A a A a A a A a A a A a E e E e E e E e E e E e E e E e I i I i O o O o O o O o O o O o O o O o O o O o O o O o U u U u U u U u U u U u U u";
            String[] arrSubKiTuKhongDau = kituKhongDau.Split(' ');
            for (int i = 0; i < Key.Count(); i++)
            {
                String str = strKey.Substring(0, 1);
                strKey = strKey.Substring(1);
                int flag = 0;
                for (int j = 0; j < arrSubKiTuKhongDau.Count(); j++)
                {
                    if (str.Equals(arrSubKiTuCoDau[j]))
                    {
                        kq = kq + arrSubKiTuKhongDau[j];
                        flag = 1;
                        break;
                    }

                }
                if (flag == 0)
                {
                    kq += str;
                }
            }
            return kq;
        }
    }
}